﻿#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//using namespace std;
//class Date
//{
//public:
//
//	//全缺省构造函数
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//	//不用写第一个参数，第一个参数有隐式的this指针
//	bool operator<( const Date& x2)
//	{
//		//比较年
//		if (_year < x2._year)
//		{
//			return true;
//		}
//		//年相等，比较月
//		else if (_year == x2._year && _month < x2._month)
//		{
//			return true;
//		}
//		//年相等，月相等，比较日
//		else if (_year == x2._year && _month == x2._month && _day < x2._day)
//		{
//			return true;
//		}
//		//都等于，或大于返回false
//		return false;
//	}
//
//private:
//	int _year;//年
//	int _month;//月
//	int _day;//日
//};

//int main()
//{
//	Date d1(2024, 9, 2);
//	Date d2(2024, 7, 4);
//	//比较，结果给tab
//
//	bool tab2 = d1.operator<(d2);
//
//	//这样写编译器会转换成       d1.operator<(d2)，    所以这样写比较方便
//	bool tab = d1 < d2;
//
//	cout << tab << endl;
//
//	return 0;
//}


//class A
//{
//public:
//	//成员函数
//	void func()
//	{
//		cout << "A::func()" << endl;
//	}
//};
//typedef void(A::* PF)(); //成员函数指针类型
//
//int main()
//{
//	// C++规定成员函数要加&才能取到函数指针
//	PF pf = &A::func;
//
//	A obj; //定义ob类对象temp
//
//	// 对象调⽤成员函数指针时，使⽤.*运算符
//	(obj.*pf)();
//
//	return 0;
//}

#include<iostream>
using namespace std;
class Date
{
public:

	//全缺省构造函数
	Date(int year = 1, int month = 1, int day = 1)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	Date operator+=(int day)
	{

	}
	//++d1
	//前置++，会自动转换成 d1.operator++()
	Date operator++()
	{
		*this += 1;
		return *this;
	}
	//d1++
	//后置++，会自动转换成 d1.operator++(1)
	Date& operator++(int n)
	{
		Date tab(*this);
		*this+=1;
		return *this;
	}


private:
	int _year;//年
	int _month;//月
	int _day;//日
};

int main()
{
	Date d1(2024,1,1);
	Date d2(2025, 6, 7);
	//++前置，会自动转换成 d1.operator++()
	++d1;
	d1++;

	return 0;
}